home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.cs.util;
-
- import java.util.Enumeration;
- import java.util.Vector;
-
- class ReflectionUtils$MoreSpecific extends Vector {
- void addItem(Object var1) {
- if (((Vector)this).size() == 0) {
- ((Vector)this).addElement(var1);
- } else {
- Class[] var2 = ReflectionUtils.entryGetParameterTypes(var1);
- boolean var3 = true;
- Enumeration var4 = ((Vector)this).elements();
-
- while(var3 & var4.hasMoreElements()) {
- Object var5 = var4.nextElement();
- Class[] var6 = ReflectionUtils.entryGetParameterTypes(var5);
- if (ReflectionUtils.access$0(var6, var2)) {
- ((Vector)this).removeElement(var5);
- } else if (ReflectionUtils.access$0(var2, var6)) {
- var3 = false;
- }
- }
-
- if (var3) {
- ((Vector)this).addElement(var1);
- }
-
- }
- }
-
- Object getMostSpecific(Class var1, String var2, Class[] var3, boolean var4) throws NoSuchMethodException {
- if (((Vector)this).size() == 1) {
- return ((Vector)this).firstElement();
- } else if (((Vector)this).size() <= 1) {
- return null;
- } else {
- StringBuffer var5 = new StringBuffer();
- Enumeration var6 = ((Vector)this).elements();
- var5.append(var6.nextElement());
-
- while(var6.hasMoreElements()) {
- var5.append(" and ").append(var6.nextElement());
- }
-
- throw new NoSuchMethodException(ReflectionUtils.access$1(var1, var2, var3, var4) + " is ambiguous. It matches " + var5.toString());
- }
- }
- }
-